iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
DevOps

一步步學DevOps:30天入門計劃系列 第 19

Day 19 建立自己的Docker image上傳至Docker Hub

  • 分享至 

  • xImage
  •  

使用 Dockerfile 建立自己的 Docker image

步驟 1: 建立工作目錄

建立一個新目錄,用於存放Docker專案,其中包含新建的Dockerfile和要執行的程式。

mkdir my-docker-project
cd my-docker-project

步驟 2: 建立 Dockerfile

在上一步驟建立的目錄中,使用您喜歡的文字編輯器(如 nano、vi/vim 或 vscode)建立一個Dockerfile 的檔案。


# 使用官方Ubuntu 20.04作為基本映像檔
FROM ubuntu:20.04

# 安裝必要的套件
RUN apt-get update && apt-get install -y \
    curl \
    wget \
    && rm -rf /var/lib/apt/lists/*
    
# 將工作目錄設定為 /app
WORKDIR /app

# 複製shell script程式到/app目錄中
COPY myscript.sh /app/myscript.sh

# 設定執行權限
RUN chmod +x /app/myscript.sh

# 在容器啟動時執行shell script
CMD ["/bin/bash", "/app/myscript.sh"]

步驟 3: 建立你要在容器啟動時執行的程式

建立新文件myscript.sh放在Dockerfile同一個工作目錄中。

#!/bin/bash

echo "歡迎使用 Dockerfile 創建的映像!"
echo "docker push Docker Hub "

步驟 4:Build Docker image

使用當前目錄中的 Dockerfile 建立一個名為 my-image 的映像。

Sudo docker build -t my-image .

備註:my-image 後面的"."表示當前目錄,不可省略。

步驟 5:查看己建立的image

sudo docker images

https://ithelp.ithome.com.tw/upload/images/20231004/20139800SZVBCT8GdC.png

步驟 6:使用image 建立容器執行Shell script。

sudo docker run --rm -it --name mydocker my-image:latest

https://ithelp.ithome.com.tw/upload/images/20231004/20139800STd70zQAjx.png

將 Docker image 上傳至 Docker Hub

步驟 1:註冊 Docker Hub 帳戶

網址:https://hub.docker.com/

步驟 2:登錄 Docker 帳戶

在終端中使用以下命令登錄到 Docker 帳戶。將 <YOUR_DOCKERHUB_USERNAME> 和 <YOUR_PASSWORD> 替換為您的 Docker Hub 使用者名稱和密碼。

docker login -u <您的帳號> -p <您的密碼>

sudo docker login -u YOUR_DOCKERHUB_USERNAME -p YOUR_PASSWORD

出現Login Succeeded代表登錄成功

步驟 3:標記 Docker image

將己經建立的my-image上傳到Docker Hub之前,需要先為它標記一個完整的名稱,包括 Docker Hub 的使用者名稱和Docker Hub 存儲庫(可自定存儲庫名字)和image tag 版本。

docker tag my-image <DOCKERHUB_USERNAME>/<REPOSITORY_NAME>:<TAG>

sudo docker tag my-image DOCKERHUB_USERNAME/REPOSITORY_NAME:latest

步驟 4: 上傳 Docker 映像

現在我們可以將它上傳至 Docker Hub。

sudo docker push DOCKERHUB_USERNAME / REPOSITORY_NAME: TAG

步驟 5: 驗證上傳

成功上傳後,可以在 Docker Hub 上檢查您的存儲庫,確認image是否存在。
https://ithelp.ithome.com.tw/upload/images/20231004/20139800tznn1bb4Po.png


上一篇
Day 18 Docker Compose 容器化應用程式管理
下一篇
Day 20 認識YAML
系列文
一步步學DevOps:30天入門計劃30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言